<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件
function p($a) {
    echo '<pre>';
    print_r($a);
    echo '</pre>';
}

// GET方式提交数据
function http_get($url, $ssl = FALSE) {
    $curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
    if($ssl)
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
        curl_setopt($curl, CURLOPT_SSLVERSION, 1);
    }
    // curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:image/jpeg')); 
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
    curl_setopt($curl, CURLOPT_TIMEOUT, 300); // 设置超时限制防止死循环
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
    $tmpInfo = curl_exec($curl); // 执行操作
    if (curl_errno($curl)) 
    {
      var_dump(curl_error($curl));
      return FALSE;
    }
    curl_close($curl); // 关闭CURL会话
    return $tmpInfo; // 返回数据
}
// post 方式提交数据
function http_post($url, $data, $ssl = FALSE) {
    // $ssl https 时设为true
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
    if($ssl)
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
    }
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
    curl_setopt($curl, CURLOPT_TIMEOUT, 3600); // 设置超时限制防止死循环
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
    $tmpInfo = curl_exec($curl); // 执行操作
    if(curl_errno($curl)) 
    {
        var_dump(curl_error($curl));
        return FALSE;
    }
    curl_close($curl); // 关闭CURL会话
    return $tmpInfo; // 返回数据
}
// delete 方式提交数据
function http_delete($url, $ssl = FALSE) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);  // 要访问的地址
    if($ssl) {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);  // 认证证书来源检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);  // 从证书中检查SSL加密算法是否存在
    }
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);  // 模拟用户使用的浏览器
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1);  // 设置自动Referer
    curl_setopt($curl, CURLOPT_HEADER, 0);  // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  // 获取信息以文件流形式返回
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');  // 设置为delete请求
    $tmpInfo = curl_exec($curl);
    if(curl_errno($curl)) {
        var_dump(curl_error($curl));
        return FALSE;
    }
    curl_close($curl);  // 关闭会话
    return $tmpInfo;
}
// put 方式提交数据
function http_put($url, $data, $ssl = FALSE) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);  // 要访问的地址
    if($ssl) {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);  // 认证证书来源检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);  // 从证书中检查SSL加密算法是否存在
    }
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);  // 模拟用户使用的浏览器
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1);  // 设置自动Referer
    curl_setopt($curl, CURLOPT_HEADER, 0);  // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  // 获取信息以文件流形式返回
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');  // 设置为put请求
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);  // 提交数据包
    $tmpInfo = curl_exec($curl);
    if(curl_errno($curl)) {
        var_dump(curl_error($curl));
        return FALSE;
    }
    curl_close($curl);  // 关闭会话
    return $tmpInfo;
}

function genUUID() {
    $uuid = ceil(microtime(true) * 10000) . '' . rand(100,999);
    return $uuid;
}